home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 6 / CU Amiga Magazine's Super CD-ROM 06 (1996)(EMAP Images)(GB)(Track 1 of 4)[!][issue 1997-01].iso / cucd / prog / gnu-c / fd2inline-1.1 / src / makefile.in < prev    next >
Makefile  |  1996-10-06  |  8KB  |  228 lines

  1. srcdir =    @srcdir@
  2. VPATH =        @srcdir@
  3.  
  4. prefix =    @prefix@
  5. exec_prefix =    @exec_prefix@
  6.  
  7. bindir =    $(exec_prefix)/bin
  8. libdir =    $(exec_prefix)/lib
  9. incdir =    $(prefix)/include
  10. guidedir =    $(prefix)/guide
  11.  
  12. INSTALL =    @INSTALL@
  13. INSTALL_PROGRAM = @INSTALL_PROGRAM@ -s
  14. INSTALL_DATA =    @INSTALL_DATA@
  15.  
  16. SHELL =        /bin/sh
  17. CC =        @CC@
  18. AR =        ar
  19. RM =        rm -rf
  20. CP =        cp -a
  21. MAKEINFO =    makeinfo
  22. LHA =        lha -mraxe
  23. MV =        mv
  24. STRIP =        strip
  25. TAR =        tar -vz
  26. RANLIB =    @RANLIB@
  27. AWK =        @AWK@
  28. DEFS =        @DEFS@
  29. LIBS =        @LIBS@
  30. CFLAGS =    @CFLAGS@
  31. LDFLAGS =    @LDFLAGS@
  32. PROTECT =    /c/protect
  33.  
  34. # Used when building fd2inline, fd2inline.guide and the archives.
  35. VERSION =    1.1
  36.  
  37. FD_DIR =    $(prefix)/os-lib/fd
  38. OS_INC_DIR =    $(prefix)/os-include
  39.  
  40. OUR_CFLAGS =    $(DEFS) -Wall -Wstrict-prototypes '-DVERSION="$(VERSION)"' -resident $(CFLAGS)
  41.  
  42. # Pseudo-targets.
  43. BUILD_INLINES =    stmp-built-inlines
  44. BUILD_PRAGMAS =    stmp-built-pragmas
  45. BUILD_PROTOS =    stmp-built-protos
  46. BUILD_LIBS =    stmp-built-libs
  47.  
  48. # List of linker libraries to build. Each entry is INCBASE!LIBBASE (see below).
  49. NONSTD_LIBS =    muimaster!mui ums!ums dospath!dospath \
  50.         screennotify!screennotify wbstart!wbstart
  51.  
  52. # Archive names.
  53. SRC_ARCHIVE_LHA = fd2inline-$(VERSION)-src.lha
  54. SRC_ARCHIVE_TGZ = fd2inline-$(VERSION)-src.tgz
  55. BIN_ARCHIVE =    fd2inline-$(VERSION)-bin.lha
  56.  
  57. # Used when building archives
  58. TMP_DIR =    /tmp
  59. TMP_SUBDIR =    fd2inline-$(VERSION)
  60.  
  61. # Flags to pass to submake.
  62. FLAGS_TO_PASS =    "CC=$(CC)" \
  63.         "AWK=$(AWK)" \
  64.         "RM=$(RM)" \
  65.         "AR=$(AR)" \
  66.         "RANLIB=$(RANLIB)" \
  67.         "OS_INC_DIR=$(OS_INC_DIR)" \
  68.         "FD_DIR=$(FD_DIR)"
  69.  
  70. all:        fd2inline $(BUILD_INLINES) $(BUILD_PRAGMAS) $(BUILD_PROTOS) $(BUILD_LIBS) guide
  71.  
  72. fd2inline:    fd2inline.c
  73.         $(CC) $(OUR_CFLAGS) $(LDFLAGS) -o fd2inline $(srcdir)/fd2inline.c $(LIBS)
  74.         if [ -f $(PROTECT) ]; then $(PROTECT) fd2inline +p; else true; fi
  75.  
  76. install:    all
  77.         $(INSTALL_PROGRAM) fd2inline $(bindir)/fd2inline
  78.         if [ -f $(PROTECT) ]; then \
  79.             (cd $(bindir); $(PROTECT) fd2inline +p); \
  80.         else true; \
  81.         fi
  82.         if [ -d $(incdir)/inline ]; then true; else mkdir $(incdir)/inline; fi
  83.         $(INSTALL_DATA) $(srcdir)/include/inline-src/*.h $(incdir)/inline
  84.         $(INSTALL_DATA) include/inline/*.h $(incdir)/inline
  85.         if [ -d $(incdir)/pragmas ]; then true; else mkdir $(incdir)/pragmas; fi
  86.         $(INSTALL_DATA) include/pragmas/*.h $(incdir)/pragmas
  87.         if [ -d $(incdir)/proto ]; then true; else mkdir $(incdir)/proto; fi
  88.         $(INSTALL_DATA) $(srcdir)/include/proto-src/*.h $(incdir)/proto
  89.         $(INSTALL_DATA) include/proto/*.h $(incdir)/proto
  90.         -$(INSTALL_DATA) lib/lib*.a $(libdir)
  91.         -$(INSTALL_DATA) lib/libb/lib*.a $(libdir)/libb
  92.         $(INSTALL_DATA) fd2inline.guide $(guidedir)
  93.  
  94. dist:        all
  95.         # Create a temporary location.
  96.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR) ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR); fi
  97.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/include ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/include; fi
  98.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/lib ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/lib; fi
  99.         # Copy the source directory to it.
  100.         ( \
  101.             cd $(srcdir); \
  102.             $(CP) include/inline-src $(TMP_DIR)/$(TMP_SUBDIR)/include; \
  103.             $(CP) include/proto-src $(TMP_DIR)/$(TMP_SUBDIR)/include; \
  104.             $(CP) lib/Makefile.in lib/splitasm.awk $(TMP_DIR)/$(TMP_SUBDIR)/lib; \
  105.             $(CP) patches configure* COPYING fd2inline.c fd2inline.texi \
  106.                 install.sh Makefile.in makepragmas.awk \
  107.                 Product-Info $(TMP_DIR)/$(TMP_SUBDIR) \
  108.         )
  109.         # Create the source archives.
  110.         ( \
  111.             cd $(TMP_DIR); \
  112.             $(LHA) a $(SRC_ARCHIVE_LHA) $(TMP_SUBDIR) \
  113.         )
  114.         $(RM) $(SRC_ARCHIVE_LHA)
  115.         $(CP) $(TMP_DIR)/$(SRC_ARCHIVE_LHA) .
  116.         $(RM) $(TMP_DIR)/$(SRC_ARCHIVE_LHA)
  117.         $(TAR) -cf $(SRC_ARCHIVE_TGZ) -C $(TMP_DIR) $(TMP_SUBDIR)
  118.         # Reorganize the temporary location.
  119.         ( \
  120.             cd $(TMP_DIR)/$(TMP_SUBDIR)/include; \
  121.             $(MV) inline-src inline; \
  122.             $(MV) proto-src proto; \
  123.             $(RM) ../lib/* \
  124.         )
  125.         # Copy the build directory to the temporary location.
  126.         $(CP) include/inline include/pragmas include/proto $(TMP_DIR)/$(TMP_SUBDIR)/include
  127.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/bin ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/bin; fi
  128.         $(CP) fd2inline $(TMP_DIR)/$(TMP_SUBDIR)/bin
  129.         $(STRIP) $(TMP_DIR)/$(TMP_SUBDIR)/bin/fd2inline
  130.         if [ -f $(PROTECT) ]; then \
  131.             (cd $(TMP_DIR)/$(TMP_SUBDIR)/bin; $(PROTECT) fd2inline +p); \
  132.         else true; \
  133.         fi
  134.         $(CP) lib/lib*.a $(TMP_DIR)/$(TMP_SUBDIR)/lib
  135.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/lib/libb ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/lib/libb; fi
  136.         $(CP) lib/libb/lib*.a $(TMP_DIR)/$(TMP_SUBDIR)/lib/libb
  137.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/guide ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/guide; fi
  138.         $(CP) fd2inline.guide $(TMP_DIR)/$(TMP_SUBDIR)/guide
  139.         # Create the binary archive.
  140.         ( \
  141.             cd $(TMP_DIR); \
  142.             $(LHA) a $(BIN_ARCHIVE) $(TMP_SUBDIR)/ bin guide include lib COPYING \
  143.         )
  144.         $(RM) $(BIN_ARCHIVE)
  145.         $(CP) $(TMP_DIR)/$(BIN_ARCHIVE) .
  146.         $(RM) $(TMP_DIR)/$(BIN_ARCHIVE)
  147.         $(RM) $(TMP_DIR)/$(TMP_SUBDIR)
  148.  
  149. $(BUILD_INLINES):    fd2inline
  150.         if [ -d include ]; then true; else mkdir include; fi
  151.         if [ -d include/inline ]; then true; else mkdir include/inline; fi
  152.         for fd in $(FD_DIR)/*.fd; do \
  153.             rootname=`basename $$fd .fd | sed "s:_lib$$::"`; \
  154.             if [ "$${rootname}" = "mathffp" -o "$${rootname}" = "mathtrans" ]; then \
  155.                 continue; \
  156.             fi; \
  157.             echo "making include/inline/$$rootname.h..."; \
  158.             ./fd2inline $$fd $(OS_INC_DIR)/clib/$${rootname}_protos.h -o include/inline/$$rootname.h; \
  159.         done
  160.         touch $(BUILD_INLINES)
  161.  
  162. $(BUILD_PRAGMAS):    $(srcdir)/makepragmas.awk
  163.         if [ -d include ]; then true; else mkdir include; fi
  164.         if [ -d include/pragmas ]; then true; else mkdir include/pragmas; fi
  165.         for fd in $(FD_DIR)/*.fd; do \
  166.             rootname=`basename $$fd .fd | sed "s:_lib$$::"`; \
  167.             if [ "$${rootname}" = "mathffp" -o "$${rootname}" = "mathtrans" ]; then \
  168.                 continue; \
  169.             fi; \
  170.             echo "making include/pragmas/$${rootname}_pragmas.h..."; \
  171.             $(AWK) -f $(srcdir)/makepragmas.awk -v PRAGMAS=$$rootname >include/pragmas/$${rootname}_pragmas.h; \
  172.         done
  173.         touch $(BUILD_PRAGMAS)
  174.  
  175. $(BUILD_PROTOS):    fd2inline
  176.         if [ -d include ]; then true; else mkdir include; fi
  177.         if [ -d include/proto ]; then true; else mkdir include/proto; fi
  178.         for fd in $(FD_DIR)/*.fd; do \
  179.             rootname=`basename $$fd .fd | sed "s:_lib$$::"`; \
  180.             if [ -f $(srcdir)/include/proto-src/$$rootname.h ]; then \
  181.                 continue; \
  182.             fi; \
  183.             echo "making include/proto/$$rootname.h..."; \
  184.             ./fd2inline --proto $$fd -o include/proto/$$rootname.h; \
  185.         done
  186.         touch $(BUILD_PROTOS)
  187.  
  188. $(BUILD_LIBS):    fd2inline
  189.         for bases in $(NONSTD_LIBS); do \
  190.             incbase=`echo $$bases | sed "s:!.*$$::"`; \
  191.             libbase=`echo $$bases | sed "s:^.*!::"`; \
  192.             if [ -f include/inline/$$incbase.h ]; then \
  193.                 echo "making lib$$libbase.a..."; \
  194.                 (cd lib; $(MAKE) $(FLAGS_TO_PASS) INCBASE=$$incbase LIBBASE=$$libbase); \
  195.             fi; \
  196.         done
  197.         touch $(BUILD_LIBS)
  198.  
  199. guide:        fd2inline.guide
  200.  
  201. fd2inline.guide:    $(srcdir)/fd2inline.texi
  202.         if [ -f version.texi ]; then true; else echo "@set version $(VERSION)" >version.texi; fi
  203.         $(MAKEINFO) --amiga-39 $(srcdir)/fd2inline.texi -o fd2inline.guide
  204.  
  205. # Make a linker library with stubs, if for some reason one can't use
  206. # inline headers. This requires two arguments on "make" commandline:
  207. #
  208. # INCBASE: base name of the includes (muimaster for MUI etc).
  209. # LIBBASE: base name of the library (mui for MUI etc).
  210.  
  211. alllib:        fd2inline
  212.         if [ "$(INCBASE)" = "" -o "$(LIBBASE)" = "" ]; then \
  213.             echo "Require two arguments: INCBASE and LIBBASE"; \
  214.         else \
  215.             (cd lib; $(MAKE) $(FLAGS_TO_PASS) INCBASE=$(INCBASE) LIBBASE=$(LIBBASE)); \
  216.         fi
  217.  
  218. clean:
  219.         $(RM) version.texi *.o *~ *!
  220.         (cd lib; $(MAKE) $(FLAGS_TO_PASS) clean)
  221.  
  222. clobber:    clean
  223.         $(RM) fd2inline fd2inline.guide \
  224.             include/inline include/pragmas include/proto \
  225.             $(BUILD_INLINES) $(BUILD_PRAGMAS) $(BUILD_PROTOS) $(BUILD_LIBS) \
  226.             $(SRC_ARCHIVE_LHA) $(SRC_ARCHIVE_TGZ) $(BIN_ARCHIVE)
  227.         (cd lib; $(MAKE) $(FLAGS_TO_PASS) clobber)
  228.